Many institutions provide systems that store data sets and provide functionality for searching the data sets. However, the functionality used to load and search the data is often provided with a large, monolithic software code implementation. As a result, it can be difficult and time consuming to modify the implementation to load new data sets and/or to provide new search features.